//dirWork.cpp
#include "dirWork.h"

int getDirFiles(std::list<std::string>& filesList, std::string dirWay)
{
	if(dirWay.c_str()[dirWay.size()-1]!='/')
		dirWay+='/';
	DIR* dir = opendir (dirWay.c_str());
	if(dir==NULL)
		return 0;
	struct dirent *attr;
	std::string str;
	attr=readdir(dir);
	while (attr)
	{
		if(attr->d_type==4 && attr->d_name[0]!='.') //its Dir
		{
			str=dirWay+attr->d_name;
			getDirFiles(filesList, str);		
		}
		else if(attr->d_name[0]!='.')
		{
			str=dirWay+attr->d_name;
			filesList.push_back(str);
		}
		attr=readdir(dir);
    }
    closedir (dir);
	return 1;	
}
int fileExists(std::string way)
{
	FILE *f=fopen(way.c_str(), "rb");
	if(f!=NULL)
	{
		fclose(f);
		return 1;
	}
	return 0;
}






























/*//текущее положение в файловой системе
	char buffer[50];
	int size=50;
	getcwd (buffer,size);
	printf("\n%s\n",buffer);
//установить деррикторию текущей
	chdir("/home");

#include <dirent.h>
//получение дискриптора папки и перепох по нему
	DIR* dir=opendir("/home/lobzik/work/LZW/res");
	fchdir (dirfd(dir));
	closedir(dir);
//получить все файлы в папке
	DIR *dir;
    struct dirent *attr;
     
    dir = opendir ("./"); //- открыть дискриптор текущей дирриктории
    if (dir != NULL)
    {
	    while (attr = readdir (dir))
	        printf("%s[] - %d\n",attr->d_name, attr->d_type); //d_type == DT_DIR //4 - это дирректория
        closedir (dir);
	}
    else
    	perror ("Couldn't open the directory");
     printf("\n\n");
     return 0;
//удаление файла
	int unlink (const char *filename)
//удаление пустой дирректории
	int rmdir (const char *filename)
//переименование файлов
	int rename (const char *oldname, const char *newname)
*/
